//package com.yc.biz.impl;
//
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.data.redis.core.HashOperations;
//import org.springframework.data.redis.core.RedisTemplate;
//import org.springframework.stereotype.Service;
//
//import java.util.Map;
//
//@Service
//public class CartService {
//    @Autowired
//    private  final RedisTemplate<String,Object> redisTemplate;
//
//    public CartService(RedisTemplate<String, Object> redisTemplate) {
//        this.redisTemplate = redisTemplate;
//    }
//    //购物车添加功能，如果此商品已经存在购物车，则数量相加
//    public int addToCart(Integer userId, Integer productId, Integer quantity) {
//        String cartKey = "cart:" + userId;
//        HashOperations<String, Integer, Integer> hashOperations = redisTemplate.opsForHash();
//
//        // 检查商品是否已经存在于购物车中
//        Integer currentQuantity = hashOperations.get(cartKey, productId);
//
//        // 如果商品已存在，则更新数量
//        if (currentQuantity != null) {
//            quantity += currentQuantity;
//        }
//        if (userId!=null&&productId!=null&&quantity!=null){
//            // 将商品添加到购物车或更新数量
//            hashOperations.put(cartKey, productId, quantity);
//            return 1;
//        }else return 0;
//
//    }
//
//
//    //这个方法的作用是，给定一个用户ID，它会返回该用户购物车中的所有商品及其数量。这对于在用户界面显示购物车内容非常有用
//    public Map<Integer, Integer> getCartItems(Integer userId) {
//        String cartKey = "cart:" + userId;
//        HashOperations<String, Integer, Integer> hashOperations = redisTemplate.opsForHash();
//        return hashOperations.entries(cartKey);
//    }
//
//    public Integer getCartItemQuantity(Integer userId, Integer productId) {
//        String cartKey = "cart:" + userId;
//        HashOperations<String, Integer, Integer> hashOperations = redisTemplate.opsForHash();
//        Integer quantity = hashOperations.get(cartKey, productId);
//        return quantity != null ? quantity : 0; // 如果商品不存在于购物车中，则返回0
//    }
//
//
////    public Integer getCartItemQuantity(Integer userId, Integer productId) {
////        String cartKey = "cart:" + userId;
////        HashOperations<String, Integer, Integer> hashOperations = redisTemplate.opsForHash();
////        // 使用get方法获取商品数量，如果商品不存在则返回null
////        return hashOperations.get(cartKey, productId);
////    }
//
//    //    这个方法的作用是，给定一个用户ID和一个商品ID，以及一个数量，它会更新该用户购物车中对应商品的数量。
////    如果商品已经在购物车中，它的数量会被更新；如果商品不在购物车中，它会被添加到购物车中。这个方法通常用于用户更改购物车中商品数量的场景
//    public void updateCartItemQuantity(Integer userId, Integer productId, int quantity) {
//        String cartKey = "cart:" + userId;
//    HashOperations<String, Integer, Integer> hashOperations = redisTemplate.opsForHash();
//        hashOperations.put(cartKey, productId, quantity);
//}
//
//    public boolean  removeFromCart(Integer userId, Integer productId) {
//        String cartKey = "cart:" + userId;
//        HashOperations<String, Integer, Integer> hashOperations = redisTemplate.opsForHash();
//        Long result = hashOperations.delete(cartKey, productId);
//        // 如果返回值大于0，表示成功删除了键
//        return result > 0;
//    }
//
//    public void clearCart(String userId) {
//        String cartKey = "cart:" + userId;
//        redisTemplate.delete(cartKey);
//    }
//}
